<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TypeScript DSL ORM - Product Backlog & Scrum 计划</title>
    <style>
        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
            line-height: 1.6;
            margin: 0;
            padding: 20px;
            background-color: #f8f9fa;
        }
        .container {
            max-width: 1800px;
            margin: 0 auto;
            background: white;
            padding: 30px;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
        h1 {
            color: #2c3e50;
            text-align: center;
            margin-bottom: 10px;
            font-size: 2.2em;
        }
        .subtitle {
            text-align: center;
            color: #7f8c8d;
            margin-bottom: 30px;
            font-style: italic;
        }
        .mvp-status {
            background: linear-gradient(135deg, #28a745, #20c997);
            color: white;
            padding: 15px;
            border-radius: 8px;
            text-align: center;
            margin-bottom: 30px;
            font-weight: bold;
        }
        .completed-sprint {
            background-color: #d4edda !important;
            border-left: 4px solid #28a745 !important;
        }
        h2 {
            color: #34495e;
            border-bottom: 3px solid #3498db;
            padding-bottom: 10px;
            margin-top: 40px;
        }
        h3 {
            color: #2980b9;
            margin-top: 30px;
        }
        table {
            width: 100%;
            border-collapse: collapse;
            margin: 20px 0;
            font-size: 11px;
        }
        th, td {
            border: 1px solid #ddd;
            padding: 6px 4px;
            text-align: left;
            vertical-align: top;
            color: #333;
        }
        th {
            background-color: #3498db;
            color: white;
            font-weight: 600;
            position: sticky;
            top: 0;
        }
        tr:nth-child(even) {
            background-color: #f8f9fa;
            color: #333;
        }
        tr:hover {
            background-color: #e8f4f8;
            color: #333;
        }
        tbody tr {
            color: #333;
        }
        .priority-critical {
            background-color: #dc3545;
            color: white;
            font-weight: bold;
        }
        .priority-high {
            background-color: #f8d7da;
            color: #721c24;
            font-weight: 500;
        }
        .priority-medium {
            background-color: #fff3cd;
            color: #856404;
            font-weight: 500;
        }
        .priority-low {
            background-color: #e3f2fd;
            color: #1565c0;
            font-weight: 500;
        }
        .story-points {
            font-weight: bold;
            text-align: center;
            font-size: 14px;
        }
        .epic-header {
            background-color: #34495e;
            color: white;
            font-weight: bold;
            text-align: center;
        }
        .mvp-section {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 15px;
            border-radius: 6px;
            margin: 20px 0;
        }
        .sprint-box {
            background: linear-gradient(135deg, #2ecc71 0%, #27ae60 100%);
            color: white;
            padding: 15px;
            border-radius: 6px;
            margin: 10px 0;
        }
        .stats {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 15px;
            margin: 20px 0;
        }
        .stat-card {
            background: white;
            padding: 15px;
            border-radius: 6px;
            border-left: 4px solid #3498db;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        }
        .stat-number {
            font-size: 24px;
            font-weight: bold;
            color: #2c3e50;
        }
        .stat-label {
            color: #7f8c8d;
            font-size: 14px;
        }
        .acceptance-criteria {
            font-size: 10px;
            color: #666;
            font-style: italic;
        }
        .definition-of-done {
            background-color: #e8f5e8;
            padding: 10px;
            border-left: 4px solid #28a745;
            margin: 10px 0;
            font-size: 11px;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>TypeScript DSL ORM</h1>
        <p class="subtitle">Product Backlog & Scrum 敏捷开发计划</p>
        
        <div class="mvp-status">
            🎉 <strong>MVP 1.0 已发布！</strong> v1.0.0 - 生产就绪的 TypeScript DSL 到 ORM 转换框架
        </div>
        
        <div class="mvp-section">
            <h3 style="margin-top: 0; color: white;">📊 项目概览</h3>
            <p><strong>项目愿景：</strong>通过 DSL 简化 ORM 开发，提升开发效率 70%</p>
            <p><strong>开发方法：</strong>Scrum 敏捷开发 + 测试驱动开发 (TDD)</p>
            <p><strong>当前状态：</strong>MVP 1.0 已发布，生产就绪</p>
            <p><strong>总体规划：</strong>4个MVP版本，渐进式交付价值</p>
        </div>

        <div class="stats">
            <div class="stat-card" style="border-left-color: #28a745;">
                <div class="stat-number">✅</div>
                <div class="stat-label">MVP 1.0 已完成</div>
            </div>
            <div class="stat-card" style="border-left-color: #e74c3c;">
                <div class="stat-number">334</div>
                <div class="stat-label">单元测试通过</div>
            </div>
            <div class="stat-card" style="border-left-color: #f39c12;">
                <div class="stat-number">52</div>
                <div class="stat-label">集成测试场景</div>
            </div>
            <div class="stat-card" style="border-left-color: #3498db;">
                <div class="stat-number">4</div>
                <div class="stat-label">数据库支持</div>
            </div>
            <div class="stat-card" style="border-left-color: #9b59b6;">
                <div class="stat-number">100%</div>
                <div class="stat-label">测试覆盖率</div>
            </div>
            <div class="stat-card" style="border-left-color: #17a2b8;">
                <div class="stat-number">v1.0.0</div>
                <div class="stat-label">当前版本</div>
            </div>
        </div>

        <h2>📊 Sprint 燃尽图</h2>
        
        <div style="margin: 20px 0; padding: 20px; background: #f8f9fa; border-radius: 8px; border-left: 4px solid #007bff;">
            <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;">
                <h4 style="margin: 0; color: #333;">🔥 当前Sprint燃尽图 (Sprint 1)</h4>
                <select id="sprintSelector" style="padding: 5px 10px; border: 1px solid #ddd; border-radius: 4px; background: white;">
                    <option value="1">Sprint 1</option>
                    <option value="2">Sprint 2</option>
                    <option value="3">Sprint 3</option>
                    <option value="4">Sprint 4</option>
                    <option value="5">Sprint 5</option>
                    <option value="6">Sprint 6</option>
                    <option value="7">Sprint 7</option>
                    <option value="8">Sprint 8</option>
                    <option value="9">Sprint 9</option>
                    <option value="10">Sprint 10</option>
                    <option value="11">Sprint 11</option>
                    <option value="12">Sprint 12</option>
                </select>
            </div>
            
            <div style="position: relative; height: 400px; background: white; border: 1px solid #ddd; border-radius: 4px; padding: 20px;">
                <canvas id="burndownChart" width="800" height="360"></canvas>
            </div>
            
            <div style="display: flex; justify-content: space-around; margin-top: 15px; text-align: center;">
                <div>
                    <div style="font-size: 24px; font-weight: bold; color: #28a745;">21</div>
                    <div style="font-size: 12px; color: #666;">剩余故事点</div>
                </div>
                <div>
                    <div style="font-size: 24px; font-weight: bold; color: #007bff;">7</div>
                    <div style="font-size: 12px; color: #666;">剩余天数</div>
                </div>
                <div>
                    <div style="font-size: 24px; font-weight: bold; color: #ffc107;">75%</div>
                    <div style="font-size: 12px; color: #666;">完成进度</div>
                </div>
                <div>
                    <div style="font-size: 24px; font-weight: bold; color: #dc3545;">+2</div>
                    <div style="font-size: 12px; color: #666;">进度偏差</div>
                </div>
            </div>
        </div>

        <h2>🎯 Product Backlog</h2>
        
        <div class="definition-of-done">
            <h4 style="margin-top: 0;">📋 Definition of Done (DoD)</h4>
            <ul style="margin: 5px 0; padding-left: 20px;">
                <li>代码通过所有单元测试（覆盖率 ≥ 80%）</li>
                <li>功能通过 Cucumber 验收测试</li>
                <li>代码通过 Code Review</li>
                <li>文档更新完成</li>
                <li>部署到测试环境并验证</li>
                <li>产品负责人验收通过</li>
            </ul>
        </div>

        <table>
            <thead>
                <tr>
                    <th style="width: 4%;">排序</th>
                    <th style="width: 6%;">故事ID</th>
                    <th style="width: 8%;">Epic</th>
                    <th style="width: 25%;">用户故事</th>
                    <th style="width: 15%;">验收标准</th>
                    <th style="width: 4%;">故事点</th>
                    <th style="width: 6%;">优先级</th>
                    <th style="width: 8%;">MVP版本</th>
                    <th style="width: 8%;">Sprint</th>
                    <th style="width: 8%;">依赖关系</th>
                    <th style="width: 8%;">状态</th>
                </tr>
            </thead>
            <tbody>
                <!-- MVP 1.0 - 完整后端基础 -->
                <tr class="epic-header">
                    <td colspan="11"><strong>MVP 1.0 - 完整后端基础 (Sprint 1-4, 6-8周)</strong></td>
                </tr>
                
                <!-- Epic 1.1 & 1.2: DSL核心能力 -->
                <tr class="priority-critical">
                    <td>1</td>
                    <td><strong>US-001</strong></td>
                    <td>Epic 1.1</td>
                    <td>作为领域专家，我希望能用简洁的DSL语法定义实体和属性，以便快速建模业务领域</td>
                    <td class="acceptance-criteria">• 支持实体定义语法 (Entity { })<br>• 支持基础属性类型 (string, number, boolean, date)<br>• 支持属性约束 (required, optional, unique)<br>• 语法错误提示和位置定位<br>• 生成实体元数据结构<br>• 支持属性默认值设置</td>
                    <td class="story-points">8</td>
                    <td>Critical</td>
                    <td>MVP 1.0</td>
                    <td>Sprint 1</td>
                    <td>-</td>
                    <td>✅ Done</td>
                </tr>
                
                <tr class="priority-critical">
                    <td>2</td>
                    <td><strong>US-002</strong></td>
                    <td>Epic 1.1</td>
                    <td>作为领域专家，我希望能在DSL中声明实体间的关联关系，以便表达复杂的业务关系</td>
                    <td class="acceptance-criteria">• 支持一对一关系 (@OneToOne)<br>• 支持一对多关系 (@OneToMany)<br>• 支持多对多关系 (@ManyToMany)<br>• 支持关系属性配置 (cascade, lazy, fetch)<br>• 自动生成外键约束<br>• 关系循环依赖检测和警告<br>• 支持双向关系映射</td>
                    <td class="story-points">13</td>
                    <td>Critical</td>
                    <td>MVP 1.0</td>
                    <td>Sprint 1</td>
                    <td>US-001</td>
                    <td>✅ Done</td>
                </tr>
                
                <tr class="priority-high">
                    <td>3</td>
                    <td><strong>US-004</strong></td>
                    <td>Epic 1.2</td>
                    <td>作为开发者，我希望DSL能自动解析生成可导航的领域对象图，以便进行业务逻辑开发</td>
                    <td class="acceptance-criteria">• 解析DSL生成抽象语法树 (AST)<br>• 构建完整的领域对象图<br>• 支持对象图导航路径查询<br>• 循环依赖检测和处理<br>• 对象图序列化/反序列化<br>• 提供对象图可视化导出<br>• 验证对象图完整性和一致性</td>
                    <td class="story-points">8</td>
                    <td>High</td>
                    <td>MVP 1.0</td>
                    <td>Sprint 1</td>
                    <td>US-001,US-002</td>
                    <td>✅ Done</td>
                </tr>
                
                <tr class="priority-critical">
                    <td>4</td>
                    <td><strong>US-007</strong></td>
                    <td>Epic 2.1</td>
                    <td>作为开发者，我希望有统一的持久化接口，以便屏蔽不同数据库的实现差异</td>
                    <td class="acceptance-criteria">• 定义抽象持久化接口 (Repository Pattern)<br>• 实现数据库适配器模式<br>• 支持基础CRUD操作统一接口<br>• 提供事务管理抽象<br>• 支持查询构建器接口<br>• 数据库连接池管理<br>• 错误处理和异常映射</td>
                    <td class="story-points">5</td>
                    <td>Critical</td>
                    <td>MVP 1.0</td>
                    <td>Sprint 2</td>
                    <td>US-004</td>
                    <td>✅ Done</td>
                </tr>
                
                <tr class="priority-critical">
                    <td>5</td>
                    <td><strong>US-008</strong></td>
                    <td>Epic 2.1</td>
                    <td>作为开发者，我希望能支持关系型和文档型数据库，以便适应不同的存储需求</td>
                    <td class="acceptance-criteria">• 集成TypeORM作为关系型数据库ORM<br>• 集成Mongoose支持MongoDB文档数据库<br>• 提供数据库类型配置切换机制<br>• 支持数据库连接字符串配置<br>• 实现数据库迁移工具<br>• 提供数据库健康检查接口</td>
                    <td class="story-points">8</td>
                    <td>Critical</td>
                    <td>MVP 1.0</td>
                    <td>Sprint 2</td>
                    <td>US-007</td>
                    <td>✅ Done</td>
                </tr>
                
                <tr class="priority-high">
                    <td>6</td>
                    <td><strong>US-010</strong></td>
                    <td>Epic 3.1</td>
                    <td>作为开发者，我希望能支持SQLite作为轻量级开发数据库，以便快速原型开发</td>
                    <td class="acceptance-criteria">• 集成SQLite3驱动程序<br>• 支持内存数据库模式 (:memory:)<br>• 支持文件数据库持久化<br>• 提供数据库初始化脚本<br>• 支持WAL模式配置<br>• 实现数据库备份和恢复功能</td>
                    <td class="story-points">3</td>
                    <td>High</td>
                    <td>MVP 1.0</td>
                    <td>Sprint 2</td>
                    <td>US-008</td>
                    <td>✅ Done</td>
                </tr>
                
                <!-- Epic 3.1 扩展：多数据库支持 (拆分为子任务) -->
                <tr class="priority-high">
                    <td>6.1</td>
                    <td><strong>US-011</strong></td>
                    <td>Epic 3.1</td>
                    <td>作为开发者，我希望能支持PostgreSQL数据库，以便在生产环境中使用高性能关系型数据库</td>
                    <td class="acceptance-criteria">• 集成pg驱动程序和连接池<br>• 支持PostgreSQL特有数据类型 (UUID, JSONB, Array)<br>• 实现JSONB字段的查询和索引<br>• 支持数组类型的存储和查询<br>• 配置SSL连接和认证<br>• 支持分区表和继承表特性</td>
                    <td class="story-points">8</td>
                    <td>High</td>
                    <td>MVP 2.0</td>
                    <td>Sprint 7</td>
                    <td>US-010</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-high">
                    <td>6.2</td>
                    <td><strong>US-012</strong></td>
                    <td>Epic 3.1</td>
                    <td>作为开发者，我希望能支持MySQL数据库，以便适应广泛使用的开源数据库环境</td>
                    <td class="acceptance-criteria">• 集成mysql2驱动程序和连接池<br>• 支持UTF8MB4字符集配置<br>• 支持InnoDB和MyISAM存储引擎<br>• 实现MySQL特有数据类型 (JSON, GEOMETRY)<br>• 支持分区表和分库分表<br>• 配置主从复制读写分离</td>
                    <td class="story-points">8</td>
                    <td>High</td>
                    <td>MVP 2.0</td>
                    <td>Sprint 7</td>
                    <td>US-011</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>6.3</td>
                    <td><strong>US-013</strong></td>
                    <td>Epic 3.1</td>
                    <td>作为开发者，我希望能建立数据库适配器抽象层，以便统一不同数据库的访问接口</td>
                    <td class="acceptance-criteria">• 定义数据库适配器接口规范<br>• 实现数据库特性抽象层<br>• 提供SQL方言转换器<br>• 统一查询语法转换机制<br>• 实现统一的错误处理和异常映射<br>• 支持数据库特性检测和兼容性检查</td>
                    <td class="story-points">5</td>
                    <td>Medium</td>
                    <td>MVP 2.0</td>
                    <td>Sprint 7</td>
                    <td>US-012</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>6.4</td>
                    <td><strong>US-014</strong></td>
                    <td>Epic 3.1</td>
                    <td>作为开发者，我希望能支持MongoDB文档数据库，以便处理非结构化和半结构化数据</td>
                    <td class="acceptance-criteria">• 集成MongoDB驱动程序和连接池<br>• 实现文档模型到DSL实体的映射<br>• 支持MongoDB聚合管道查询<br>• 实现复合索引和文本索引管理<br>• 支持GridFS大文件存储<br>• 配置副本集和分片集群连接</td>
                    <td class="story-points">13</td>
                    <td>Medium</td>
                    <td>MVP 2.0</td>
                    <td>Sprint 8</td>
                    <td>US-013</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-low">
                    <td>6.5</td>
                    <td><strong>US-018</strong></td>
                    <td>Epic 3.1</td>
                    <td>作为开发者，我希望能实现数据库连接池管理，以便优化数据库连接性能</td>
                    <td class="acceptance-criteria">• 实现可配置的连接池参数 (min, max, idle)<br>• 支持连接复用和生命周期管理<br>• 实现连接超时和重试机制<br>• 提供连接池监控指标和健康检查<br>• 支持连接池预热和优雅关闭<br>• 实现连接泄漏检测和报警</td>
                    <td class="story-points">8</td>
                    <td>Low</td>
                    <td>MVP 2.0</td>
                    <td>Sprint 8</td>
                    <td>US-014</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-low">
                    <td>6.6</td>
                    <td><strong>US-019</strong></td>
                    <td>Epic 3.1</td>
                    <td>作为开发者，我希望能支持数据库特定的优化特性，以便充分利用各数据库的性能优势</td>
                    <td class="acceptance-criteria">• 实现数据库特定的查询优化器<br>• 支持智能索引策略推荐<br>• 实现表分区和分片支持<br>• 提供数据库性能监控和分析<br>• 支持查询执行计划分析<br>• 实现数据库特定的缓存策略</td>
                    <td class="story-points">5</td>
                    <td>Low</td>
                    <td>MVP 2.0</td>
                    <td>Sprint 8</td>
                    <td>US-018</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-high">
                    <td>7</td>
                    <td><strong>US-015</strong></td>
                    <td>Epic 3.3</td>
                    <td>作为开发者，我希望能自动创建数据库表结构，以便减少手动配置工作</td>
                    <td class="acceptance-criteria">• 自动生成DDL语句 (CREATE TABLE, ALTER TABLE)<br>• 支持表结构与DSL模型同步<br>• 自动创建主键、外键和唯一约束<br>• 支持复合索引和部分索引创建<br>• 实现数据库版本控制和迁移历史<br>• 提供表结构差异检测和报告</td>
                    <td class="story-points">5</td>
                    <td>High</td>
                    <td>MVP 1.0</td>
                    <td>Sprint 3</td>
                    <td>US-010</td>
                    <td>✅ Done</td>
                </tr>
                
                <tr class="priority-high">
                    <td>8</td>
                    <td><strong>US-016</strong></td>
                    <td>Epic 3.3</td>
                    <td>作为开发者，我希望能安全地添加新字段和约束，以便支持业务模型演进</td>
                    <td class="acceptance-criteria">• 实现安全的数据库迁移策略<br>• 支持新字段添加和默认值设置<br>• 实现约束管理 (NOT NULL, CHECK, UNIQUE)<br>• 提供迁移回滚和前滚机制<br>• 支持零停机时间迁移<br>• 实现迁移前数据备份和验证</td>
                    <td class="story-points">8</td>
                    <td>High</td>
                    <td>MVP 1.0</td>
                    <td>Sprint 3</td>
                    <td>US-015</td>
                    <td>✅ Done</td>
                </tr>
                
                <tr class="priority-critical">
                    <td>9</td>
                    <td><strong>US-029</strong></td>
                    <td>Epic 6.1</td>
                    <td>作为开发者，我希望能自动生成标准的CRUD API，以便快速构建数据访问接口</td>
                    <td class="acceptance-criteria">• 自动生成RESTful API端点 (GET, POST, PUT, DELETE)<br>• 实现标准CRUD操作和批量操作<br>• 提供统一的错误处理和HTTP状态码<br>• 支持请求参数验证和数据校验<br>• 实现API文档自动生成 (OpenAPI/Swagger)<br>• 支持API版本控制和向后兼容</td>
                    <td class="story-points">13</td>
                    <td>Critical</td>
                    <td>MVP 1.0</td>
                    <td>Sprint 4</td>
                    <td>US-016</td>
                    <td>✅ Done</td>
                </tr>
                
                <tr class="priority-high">
                    <td>10</td>
                    <td><strong>US-030</strong></td>
                    <td>Epic 6.1</td>
                    <td>作为最终用户，我希望API提供HATEOAS导航，以便发现可用的操作和资源</td>
                    <td class="acceptance-criteria">• 超媒体链接<br>• 资源发现<br>• 导航支持</td>
                    <td class="story-points">8</td>
                    <td>High</td>
                    <td>MVP 1.0</td>
                    <td>Sprint 4</td>
                    <td>US-029</td>
                    <td>✅ Done</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>11</td>
                    <td><strong>US-031</strong></td>
                    <td>Epic 6.1</td>
                    <td>作为最终用户，我希望能通过API执行业务命令，以便完成业务操作</td>
                    <td class="acceptance-criteria">• 命令端点<br>• 参数验证<br>• 结果返回</td>
                    <td class="story-points">5</td>
                    <td>Medium</td>
                    <td>MVP 1.0</td>
                    <td>Sprint 4</td>
                    <td>US-030</td>
                    <td>✅ Done</td>
                </tr>
                
                <!-- MVP 2.0 - 业务逻辑层 -->
                <tr class="epic-header">
                    <td colspan="11"><strong>MVP 2.0 - 增强功能层 (Sprint 5-8, 6-8周)</strong></td>
                </tr>
                
                <!-- Epic 2.1: 完整数据类型系统 (提升优先级) -->
                <tr class="priority-critical">
                    <td>12</td>
                    <td><strong>US-015</strong></td>
                    <td>Epic 2.1</td>
                    <td>作为开发者，我希望能定义和使用类型别名（TypeAlias），以便提高DSL的可读性和维护性</td>
                    <td class="acceptance-criteria">• 类型别名语法<br>• 别名解析<br>• 类型检查<br>• 代码生成</td>
                    <td class="story-points">8</td>
                    <td>Critical</td>
                    <td>MVP 2.0</td>
                    <td>Sprint 5</td>
                    <td>US-031</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-critical">
                    <td>13</td>
                    <td><strong>US-016</strong></td>
                    <td>Epic 2.1</td>
                    <td>作为开发者，我希望能支持枚举类型和联合类型，以便精确定义数据约束</td>
                    <td class="acceptance-criteria">• 枚举类型定义<br>• 联合类型支持<br>• 类型约束<br>• 验证规则</td>
                    <td class="story-points">8</td>
                    <td>Critical</td>
                    <td>MVP 2.0</td>
                    <td>Sprint 5</td>
                    <td>US-015</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-high">
                    <td>14</td>
                    <td><strong>US-017</strong></td>
                    <td>Epic 2.1</td>
                    <td>作为开发者，我希望类型系统能自动进行类型检查和转换，以便保证数据类型安全</td>
                    <td class="acceptance-criteria">• 自动类型检查<br>• 类型转换<br>• 错误提示<br>• 运行时验证</td>
                    <td class="story-points">5</td>
                    <td>High</td>
                    <td>MVP 2.0</td>
                    <td>Sprint 5</td>
                    <td>US-016</td>
                    <td>📋 To Do</td>
                </tr>
                
                <!-- Epic 7.1: 声明式校验 (保持高优先级) -->
                <tr class="priority-high">
                    <td>15</td>
                    <td><strong>US-034</strong></td>
                    <td>Epic 7.1</td>
                    <td>作为领域专家，我希望能在DSL中声明字段验证规则，以便确保数据质量</td>
                    <td class="acceptance-criteria">• DSL验证语法<br>• 规则解析<br>• 客户端导出</td>
                    <td class="story-points">8</td>
                    <td>High</td>
                    <td>MVP 2.0</td>
                    <td>Sprint 6</td>
                    <td>US-017</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-high">
                    <td>16</td>
                    <td><strong>US-035</strong></td>
                    <td>Epic 7.1</td>
                    <td>作为开发者，我希望验证规则能自动在创建和更新时执行，以便保证数据一致性</td>
                    <td class="acceptance-criteria">• 自动验证<br>• 错误处理<br>• 一致性保证</td>
                    <td class="story-points">5</td>
                    <td>High</td>
                    <td>MVP 2.0</td>
                    <td>Sprint 6</td>
                    <td>US-034</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>17</td>
                    <td><strong>US-036</strong></td>
                    <td>Epic 7.1</td>
                    <td>作为开发者，我希望能支持跨字段的复杂验证，以便实现业务规则约束</td>
                    <td class="acceptance-criteria">• 跨字段验证<br>• 复杂规则<br>• 业务约束</td>
                    <td class="story-points">8</td>
                    <td>Medium</td>
                    <td>MVP 2.0</td>
                    <td>Sprint 6</td>
                    <td>US-035</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-critical">
                    <td>18</td>
                    <td><strong>US-044</strong></td>
                    <td>Epic 9.1</td>
                    <td>作为领域专家，我希望能声明业务命令及其参数，以便定义业务操作接口</td>
                    <td class="acceptance-criteria">• 命令声明<br>• 参数定义<br>• 接口生成</td>
                    <td class="story-points">8</td>
                    <td>Critical</td>
                    <td>MVP 3.0</td>
                    <td>Sprint 9</td>
                    <td>US-036</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-high">
                    <td>19</td>
                    <td><strong>US-045</strong></td>
                    <td>Epic 9.1</td>
                    <td>作为开发者，我希望命令能在安全沙箱中执行，以便防止恶意代码执行</td>
                    <td class="acceptance-criteria">• 沙箱环境<br>• 安全执行<br>• 资源限制</td>
                    <td class="story-points">13</td>
                    <td>High</td>
                    <td>MVP 3.0</td>
                    <td>Sprint 9</td>
                    <td>US-044</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-high">
                    <td>20</td>
                    <td><strong>US-046</strong></td>
                    <td>Epic 9.1</td>
                    <td>作为开发者，我希望命令执行能在事务中进行，以便保证数据一致性</td>
                    <td class="acceptance-criteria">• 事务支持<br>• 回滚机制<br>• 一致性保证</td>
                    <td class="story-points">5</td>
                    <td>High</td>
                    <td>MVP 3.0</td>
                    <td>Sprint 9</td>
                    <td>US-045</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>21</td>
                    <td><strong>US-047</strong></td>
                    <td>Epic 10.1</td>
                    <td>作为开发者，我希望命令执行能自动发布领域事件，以便实现松耦合的业务逻辑</td>
                    <td class="acceptance-criteria">• 事件发布<br>• 自动触发<br>• 松耦合设计</td>
                    <td class="story-points">8</td>
                    <td>Medium</td>
                    <td>MVP 3.0</td>
                    <td>Sprint 10</td>
                    <td>US-046</td>
                    <td>📋 To Do</td>
                </tr>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-high">
                    <td>19</td>
                    <td><strong>US-049</strong></td>
                    <td>Epic 10.1</td>
                    <td>作为开发者，我希望有轻量级的事件总线，以便在单体应用中实现事件驱动架构</td>
                    <td class="acceptance-criteria">• 轻量级总线<br>• 事件驱动<br>• 单体应用支持</td>
                    <td class="story-points">8</td>
                    <td>High</td>
                    <td>MVP 2.0</td>
                    <td>Sprint 7</td>
                    <td>US-047</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>20</td>
                    <td><strong>US-050</strong></td>
                    <td>Epic 10.1</td>
                    <td>作为开发者，我希望能订阅和处理领域事件，以便实现业务流程编排</td>
                    <td class="acceptance-criteria">• 事件订阅<br>• 事件处理<br>• 流程编排</td>
                    <td class="story-points">5</td>
                    <td>Medium</td>
                    <td>MVP 2.0</td>
                    <td>Sprint 7</td>
                    <td>US-049</td>
                    <td>📋 To Do</td>
                </tr>
                
                <!-- MVP 3.0 - 高级查询与热更新 -->
                <tr class="epic-header">
                    <td colspan="11"><strong>MVP 3.0 - 高级查询与热更新 (Sprint 8-10, 4-6周)</strong></td>
                </tr>
                
                <!-- Epic 4.1: RSQL查询支持 -->
                <tr class="priority-high">
                    <td>21</td>
                    <td><strong>US-018</strong></td>
                    <td>Epic 4.1</td>
                    <td>作为最终用户，我希望能使用简单的RSQL语法进行数据查询，以便快速检索所需信息</td>
                    <td class="acceptance-criteria">• RSQL语法<br>• 查询解析<br>• 结果返回</td>
                    <td class="story-points">13</td>
                    <td>High</td>
                    <td>MVP 3.0</td>
                    <td>Sprint 8</td>
                    <td>US-050</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>22</td>
                    <td><strong>US-019</strong></td>
                    <td>Epic 4.1</td>
                    <td>作为最终用户，我希望能进行比较、集合、模糊匹配等多种查询操作，以便满足复杂查询需求</td>
                    <td class="acceptance-criteria">• 比较操作<br>• 集合查询<br>• 模糊匹配</td>
                    <td class="story-points">8</td>
                    <td>Medium</td>
                    <td>MVP 3.0</td>
                    <td>Sprint 8</td>
                    <td>US-018</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>23</td>
                    <td><strong>US-020</strong></td>
                    <td>Epic 4.1</td>
                    <td>作为最终用户，我希望能通过关联路径查询相关数据，以便获取完整的业务信息</td>
                    <td class="acceptance-criteria">• 关联查询<br>• 路径导航<br>• 完整信息</td>
                    <td class="story-points">13</td>
                    <td>Medium</td>
                    <td>MVP 3.0</td>
                    <td>Sprint 8</td>
                    <td>US-019</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-high">
                    <td>24</td>
                    <td><strong>US-023</strong></td>
                    <td>Epic 5.1</td>
                    <td>作为开发者，我希望能在不重启服务的情况下更新模型，以便提高开发效率</td>
                    <td class="acceptance-criteria">• 热更新<br>• 无重启<br>• 开发效率</td>
                    <td class="story-points">13</td>
                    <td>High</td>
                    <td>MVP 3.0</td>
                    <td>Sprint 9</td>
                    <td>US-020</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-critical">
                    <td>25</td>
                    <td><strong>US-025</strong></td>
                    <td>Epic 5.2</td>
                    <td>作为系统管理员，我希望系统只自动执行安全的Schema变更，以便避免数据丢失</td>
                    <td class="acceptance-criteria">• 安全变更<br>• 数据保护<br>• 自动执行</td>
                    <td class="story-points">8</td>
                    <td>Critical</td>
                    <td>MVP 3.0</td>
                    <td>Sprint 9</td>
                    <td>US-023</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>26</td>
                    <td><strong>US-028</strong></td>
                    <td>Epic 5.1</td>
                    <td>作为开发者，我希望模型更新能原子性地生效，以便避免中间状态的不一致</td>
                    <td class="acceptance-criteria">• 原子更新<br>• 状态一致<br>• 避免中间态</td>
                    <td class="story-points">8</td>
                    <td>Medium</td>
                    <td>MVP 3.0</td>
                    <td>Sprint 10</td>
                    <td>US-025</td>
                    <td>📋 To Do</td>
                </tr>
                
                <!-- MVP 4.0 - 企业级功能 -->
                <tr class="epic-header">
                    <td colspan="11"><strong>MVP 4.0 - 企业级功能 (Sprint 11-12, 6-8周)</strong></td>
                </tr>
                
                <!-- Epic 8.1 & 8.2: 权限控制 -->
                <tr class="priority-high">
                    <td>27</td>
                    <td><strong>US-039</strong></td>
                    <td>Epic 8.1</td>
                    <td>作为系统管理员，我希望能在DSL中声明权限规则，以便统一管理访问控制</td>
                    <td class="acceptance-criteria">• 权限声明<br>• 统一管理<br>• 访问控制</td>
                    <td class="story-points">13</td>
                    <td>High</td>
                    <td>MVP 4.0</td>
                    <td>Sprint 11</td>
                    <td>US-028</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-high">
                    <td>28</td>
                    <td><strong>US-041</strong></td>
                    <td>Epic 8.2</td>
                    <td>作为系统管理员，我希望能控制字段级的读写权限，以便实现细粒度的数据保护</td>
                    <td class="acceptance-criteria">• 字段级权限<br>• 读写控制<br>• 细粒度保护</td>
                    <td class="story-points">8</td>
                    <td>High</td>
                    <td>MVP 4.0</td>
                    <td>Sprint 11</td>
                    <td>US-039</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>29</td>
                    <td><strong>US-042</strong></td>
                    <td>Epic 8.2</td>
                    <td>作为系统管理员，我希望能对敏感字段进行掩码处理，以便保护隐私数据</td>
                    <td class="acceptance-criteria">• 字段掩码<br>• 隐私保护<br>• 敏感数据</td>
                    <td class="story-points">5</td>
                    <td>Medium</td>
                    <td>MVP 4.0</td>
                    <td>Sprint 11</td>
                    <td>US-041</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-critical">
                    <td>30</td>
                    <td><strong>US-051</strong></td>
                    <td>Epic 11.1</td>
                    <td>作为系统管理员，我希望能记录所有命令执行和权限判定，以便进行安全审计</td>
                    <td class="acceptance-criteria">• 命令记录<br>• 权限审计<br>• 安全日志</td>
                    <td class="story-points">8</td>
                    <td>Critical</td>
                    <td>MVP 4.0</td>
                    <td>Sprint 12</td>
                    <td>US-042</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>31</td>
                    <td><strong>US-052</strong></td>
                    <td>Epic 11.1</td>
                    <td>作为系统管理员，我希望能记录查询和SQL执行情况，以便进行性能分析和故障排查</td>
                    <td class="acceptance-criteria">• 查询记录<br>• SQL日志<br>• 性能分析</td>
                    <td class="story-points">5</td>
                    <td>Medium</td>
                    <td>MVP 4.0</td>
                    <td>Sprint 12</td>
                    <td>US-051</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>32</td>
                    <td><strong>US-053</strong></td>
                    <td>Epic 11.2</td>
                    <td>作为系统管理员，我希望有结构化的日志格式和可配置的日志级别，以便集成日志分析系统</td>
                    <td class="acceptance-criteria">• 结构化日志<br>• 日志级别<br>• 分析集成</td>
                    <td class="story-points">8</td>
                    <td>Medium</td>
                    <td>MVP 4.0</td>
                    <td>Sprint 13</td>
                    <td>US-052</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>33</td>
                    <td><strong>US-054</strong></td>
                    <td>Epic 11.2</td>
                    <td>作为系统管理员，我希望有详细的性能指标收集，以便监控系统性能</td>
                    <td class="acceptance-criteria">• 性能指标<br>• 指标收集<br>• 系统监控</td>
                    <td class="story-points">5</td>
                    <td>Medium</td>
                    <td>MVP 4.0</td>
                    <td>Sprint 13</td>
                    <td>US-053</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>34</td>
                    <td><strong>US-055</strong></td>
                    <td>Epic 11.2</td>
                    <td>作为系统管理员，我希望有Prometheus兼容的指标接口，以便集成监控系统</td>
                    <td class="acceptance-criteria">• Prometheus接口<br>• 指标兼容<br>• 监控集成</td>
                    <td class="story-points">8</td>
                    <td>Medium</td>
                    <td>MVP 4.0</td>
                    <td>Sprint 13</td>
                    <td>US-054</td>
                    <td>📋 To Do</td>
                </tr>
                
                <!-- 增值功能 (Nice to Have) -->
                <tr class="epic-header">
                    <td colspan="11"><strong>增值功能 - 可选扩展 (后续版本)</strong></td>
                </tr>
                
                <tr class="priority-low">
                    <td>35</td>
                    <td><strong>US-034</strong></td>
                    <td>Epic 6.2</td>
                    <td>作为开发者，我希望能可选地生成GraphQL接口，以便支持灵活的数据查询</td>
                    <td class="acceptance-criteria">• GraphQL生成<br>• 灵活查询<br>• 可选功能</td>
                    <td class="story-points">13</td>
                    <td>Low</td>
                    <td>Future</td>
                    <td>Backlog</td>
                    <td>US-055</td>
                    <td>💡 Future</td>
                </tr>
                
                <tr class="priority-low">
                    <td>36</td>
                    <td><strong>US-035</strong></td>
                    <td>Epic 6.2</td>
                    <td>作为开发者，我希望能获取当前模型的元数据和API版本信息，以便动态构建客户端界面</td>
                    <td class="acceptance-criteria">• 元数据获取<br>• API版本信息<br>• 动态构建</td>
                    <td class="story-points">8</td>
                    <td>Low</td>
                    <td>Future</td>
                    <td>Backlog</td>
                    <td>US-034</td>
                    <td>💡 Future</td>
                </tr>
                
                <tr class="priority-low">
                    <td>37</td>
                    <td><strong>US-036</strong></td>
                    <td>Epic 6.2</td>
                    <td>作为开发者，我希望API支持内容协商和多种响应格式，以便适应不同的客户端需求</td>
                    <td class="acceptance-criteria">• 内容协商<br>• 多种格式<br>• 客户端适配</td>
                    <td class="story-points">5</td>
                    <td>Low</td>
                    <td>Future</td>
                    <td>Backlog</td>
                    <td>US-035</td>
                    <td>💡 Future</td>
                </tr>
                
                <tr class="priority-low">
                    <td>38</td>
                    <td><strong>US-056</strong></td>
                    <td>Epic 12.1</td>
                    <td>作为开发者，我希望有统一的抽象接口，以便支持不同的实现策略</td>
                    <td class="acceptance-criteria">• 抽象接口<br>• 实现策略<br>• 统一标准</td>
                    <td class="story-points">8</td>
                    <td>Low</td>
                    <td>Future</td>
                    <td>Backlog</td>
                    <td>US-036</td>
                    <td>💡 Future</td>
                </tr>
                
                <tr class="priority-low">
                    <td>39</td>
                    <td><strong>US-057</strong></td>
                    <td>Epic 12.2</td>
                    <td>作为开发者，我希望能插拔不同的查询解析器，以便支持多种查询语言</td>
                    <td class="acceptance-criteria">• 插拔架构<br>• 查询解析器<br>• 多语言支持</td>
                    <td class="story-points">13</td>
                    <td>Low</td>
                    <td>Future</td>
                    <td>Backlog</td>
                    <td>US-056</td>
                    <td>💡 Future</td>
                </tr>
                
                <tr class="priority-low">
                    <td>40</td>
                    <td><strong>US-058</strong></td>
                    <td>Epic 12.2</td>
                    <td>作为开发者，我希望能插拔不同的存储后端，以便适应不同的部署环境</td>
                    <td class="acceptance-criteria">• 存储后端<br>• 插拔设计<br>• 部署适配</td>
                    <td class="story-points">8</td>
                    <td>Low</td>
                    <td>Future</td>
                    <td>Backlog</td>
                    <td>US-057</td>
                    <td>💡 Future</td>
                </tr>
                
                <tr class="priority-low">
                    <td>41</td>
                    <td><strong>US-059</strong></td>
                    <td>Epic 12.2</td>
                    <td>作为开发者，我希望能插拔不同的权限引擎，以便集成现有的安全系统</td>
                    <td class="acceptance-criteria">• 权限引擎<br>• 插拔架构<br>• 安全集成</td>
                    <td class="story-points">8</td>
                    <td>Low</td>
                    <td>Future</td>
                    <td>Backlog</td>
                    <td>US-058</td>
                    <td>💡 Future</td>
                </tr>
                
                <!-- 模板系统与代码重用 -->
                <tr class="epic-header">
                    <td colspan="11"><strong>模板系统与代码重用 - Epic 13 (中优先级)</strong></td>
                </tr>
                
                <tr class="priority-medium">
                    <td>37</td>
                    <td><strong>US-060</strong></td>
                    <td>Epic 13.1</td>
                    <td>作为开发者，我希望能定义可重用的字段模板，以便减少重复的字段定义</td>
                    <td class="acceptance-criteria">• 字段模板<br>• 可重用组件<br>• 减少重复</td>
                    <td class="story-points">8</td>
                    <td>Medium</td>
                    <td>MVP 3.0</td>
                    <td>Sprint 9</td>
                    <td>US-059</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>38</td>
                    <td><strong>US-061</strong></td>
                    <td>Epic 13.1</td>
                    <td>作为开发者，我希望能使用参数化模板，以便创建灵活的字段组合</td>
                    <td class="acceptance-criteria">• 参数化模板<br>• 灵活组合<br>• 动态配置</td>
                    <td class="story-points">13</td>
                    <td>Medium</td>
                    <td>MVP 3.0</td>
                    <td>Sprint 9</td>
                    <td>US-060</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>39</td>
                    <td><strong>US-062</strong></td>
                    <td>Epic 13.1</td>
                    <td>作为开发者，我希望模板能支持继承和组合，以便构建复杂的业务模型</td>
                    <td class="acceptance-criteria">• 模板继承<br>• 组合模式<br>• 复杂模型</td>
                    <td class="story-points">13</td>
                    <td>Medium</td>
                    <td>MVP 3.0</td>
                    <td>Sprint 10</td>
                    <td>US-061</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>40</td>
                    <td><strong>US-063</strong></td>
                    <td>Epic 13.2</td>
                    <td>作为开发者，我希望能定义实体模板，以便快速创建标准化的业务对象</td>
                    <td class="acceptance-criteria">• 实体模板<br>• 标准化对象<br>• 快速创建</td>
                    <td class="story-points">8</td>
                    <td>Medium</td>
                    <td>MVP 3.0</td>
                    <td>Sprint 10</td>
                    <td>US-062</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>41</td>
                    <td><strong>US-064</strong></td>
                    <td>Epic 13.2</td>
                    <td>作为开发者，我希望模板系统能自动生成相关的验证规则和业务逻辑，以便保证一致性</td>
                    <td class="acceptance-criteria">• 自动生成<br>• 验证规则<br>• 业务逻辑</td>
                    <td class="story-points">13</td>
                    <td>Medium</td>
                    <td>MVP 3.0</td>
                    <td>Sprint 10</td>
                    <td>US-063</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>42</td>
                    <td><strong>US-065</strong></td>
                    <td>Epic 13.2</td>
                    <td>作为开发者，我希望能导出和共享模板库，以便在团队和项目间重用最佳实践</td>
                    <td class="acceptance-criteria">• 模板导出<br>• 共享机制<br>• 最佳实践</td>
                    <td class="story-points">8</td>
                    <td>Medium</td>
                    <td>MVP 3.0</td>
                    <td>Sprint 11</td>
                    <td>US-064</td>
                    <td>📋 To Do</td>
                </tr>
                
                <!-- 插件系统与扩展性 -->
                <tr class="epic-header">
                    <td colspan="11"><strong>插件系统与扩展性 - Epic 14 (中/低优先级)</strong></td>
                </tr>
                
                <tr class="priority-medium">
                    <td>43</td>
                    <td><strong>US-066</strong></td>
                    <td>Epic 14.1</td>
                    <td>作为开发者，我希望有标准的插件接口，以便扩展DSL的功能</td>
                    <td class="acceptance-criteria">• 插件接口<br>• 标准规范<br>• 功能扩展</td>
                    <td class="story-points">13</td>
                    <td>Medium</td>
                    <td>MVP 4.0</td>
                    <td>Sprint 12</td>
                    <td>US-065</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>44</td>
                    <td><strong>US-067</strong></td>
                    <td>Epic 14.1</td>
                    <td>作为开发者，我希望插件能在DSL解析的不同阶段介入，以便实现自定义的处理逻辑</td>
                    <td class="acceptance-criteria">• 生命周期钩子<br>• 自定义逻辑<br>• 阶段介入</td>
                    <td class="story-points">13</td>
                    <td>Medium</td>
                    <td>MVP 4.0</td>
                    <td>Sprint 12</td>
                    <td>US-066</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-medium">
                    <td>45</td>
                    <td><strong>US-068</strong></td>
                    <td>Epic 14.1</td>
                    <td>作为开发者，我希望插件系统支持热插拔，以便在运行时动态加载和卸载插件</td>
                    <td class="acceptance-criteria">• 热插拔<br>• 动态加载<br>• 运行时管理</td>
                    <td class="story-points">13</td>
                    <td>Medium</td>
                    <td>MVP 4.0</td>
                    <td>Sprint 13</td>
                    <td>US-067</td>
                    <td>📋 To Do</td>
                </tr>
                
                <tr class="priority-low">
                    <td>46</td>
                    <td><strong>US-069</strong></td>
                    <td>Epic 14.2</td>
                    <td>作为开发者，我希望有插件注册和发现机制，以便管理和使用第三方插件</td>
                    <td class="acceptance-criteria">• 插件注册<br>• 发现机制<br>• 第三方管理</td>
                    <td class="story-points">8</td>
                    <td>Low</td>
                    <td>Future</td>
                    <td>Backlog</td>
                    <td>US-068</td>
                    <td>💡 Future</td>
                </tr>
                
                <tr class="priority-low">
                    <td>47</td>
                    <td><strong>US-070</strong></td>
                    <td>Epic 14.2</td>
                    <td>作为开发者，我希望插件能提供自己的配置和文档，以便易于集成和使用</td>
                    <td class="acceptance-criteria">• 插件配置<br>• 文档系统<br>• 易于集成</td>
                    <td class="story-points">5</td>
                    <td>Low</td>
                    <td>Future</td>
                    <td>Backlog</td>
                    <td>US-069</td>
                    <td>💡 Future</td>
                </tr>
                
                <tr class="priority-low">
                    <td>48</td>
                    <td><strong>US-071</strong></td>
                    <td>Epic 14.2</td>
                    <td>作为开发者，我希望插件系统有安全机制，以便防止恶意插件影响系统稳定性</td>
                    <td class="acceptance-criteria">• 安全机制<br>• 恶意防护<br>• 系统稳定</td>
                    <td class="story-points">13</td>
                    <td>Low</td>
                    <td>Future</td>
                    <td>Backlog</td>
                    <td>US-070</td>
                    <td>💡 Future</td>
                </tr>
            </tbody>
        </table>

        <h2>🚀 Sprint 计划</h2>
        
        <h3 style="color: #2c3e50; margin-top: 30px;">MVP 1.0 - 核心DSL基础 (Sprint 1-3)</h3>
        
        <div class="sprint-box" style="background: linear-gradient(135deg, #2ecc71 0%, #27ae60 100%);">
            <h3 style="margin-top: 0; color: white;">✅ Sprint 1 (已完成) - DSL核心解析</h3>
            <p><strong>Sprint 目标：</strong>完成DSL语法解析和对象图生成的核心功能</p>
            <p><strong>故事点：</strong>29点 (US-001: 8点 + US-002: 13点 + US-004: 8点)</p>
            <p><strong>主要交付：</strong>DSL解析器、关系定义、领域对象图</p>
            <p><strong>验收标准：</strong>✅ 用户可以用DSL定义实体和关系，系统生成对象图 - 52个Cucumber场景全部通过</p>
        </div>
        
        <div class="sprint-box" style="background: linear-gradient(135deg, #2ecc71 0%, #27ae60 100%);">
            <h3 style="margin-top: 0; color: white;">✅ Sprint 2 (已完成) - 持久化适配层</h3>
            <p><strong>Sprint 目标：</strong>建立统一的持久化接口和基础数据库支持</p>
            <p><strong>故事点：</strong>16点 (US-007: 5点 + US-008: 8点 + US-010: 3点)</p>
            <p><strong>主要交付：</strong>持久化抽象层、TypeORM集成、SQLite支持</p>
            <p><strong>验收标准：</strong>✅ DSL模型可以映射到数据库表结构 - ORM集成测试通过</p>
        </div>
        
        <div class="sprint-box" style="background: linear-gradient(135deg, #2ecc71 0%, #27ae60 100%);">
            <h3 style="margin-top: 0; color: white;">✅ Sprint 3 (已完成) - 基础API与MVP1.0完成</h3>
            <p><strong>Sprint 目标：</strong>提供基础CRUD API，完成MVP 1.0核心功能</p>
            <p><strong>故事点：</strong>26点 (US-015: 5点 + US-016: 8点 + US-029: 13点)</p>
            <p><strong>主要交付：</strong>自动建表、基础迁移、RESTful API生成器</p>
            <p><strong>验收标准：</strong>✅ 从DSL到基础CRUD API的端到端流程 - 核心功能测试通过</p>
        </div>

        <h3 style="color: #2c3e50; margin-top: 30px;">MVP 2.0 - 增强功能层 (Sprint 4-8)</h3>
        
        <div class="sprint-box" style="background: linear-gradient(135deg, #2ecc71 0%, #27ae60 100%);">
            <h3 style="margin-top: 0; color: white;">✅ Sprint 4 (已完成) - API增强功能</h3>
            <p><strong>Sprint 目标：</strong>完善API功能，增加导航和命令支持</p>
            <p><strong>故事点：</strong>13点 (US-030: 8点 + US-031: 5点)</p>
            <p><strong>主要交付：</strong>HATEOAS导航、业务命令API、增强后端服务</p>
            <p><strong>验收标准：</strong>✅ API功能完善，支持复杂业务操作 - 17个E2E测试全部通过</p>
        </div>
        
        <div class="sprint-box">
            <h3 style="margin-top: 0; color: white;">Sprint 5 (2周) - 完整数据类型系统</h3>
            <p><strong>Sprint 目标：</strong>实现类型别名、枚举类型和联合类型支持</p>
            <p><strong>故事点：</strong>21点 (US-015: 8点 + US-016: 8点 + US-017: 5点)</p>
            <p><strong>主要交付：</strong>类型别名系统、枚举与联合类型、自动类型检查转换</p>
            <p><strong>验收标准：</strong>支持完整的类型系统，提供强类型安全保障</p>
        </div>
        
        <div class="sprint-box">
            <h3 style="margin-top: 0; color: white;">Sprint 6 (2周) - 增强验证规则系统</h3>
            <p><strong>Sprint 目标：</strong>实现跨字段复杂验证和自定义验证器</p>
            <p><strong>故事点：</strong>26点 (US-034: 8点 + US-035: 8点 + US-036: 5点 + US-037: 5点)</p>
            <p><strong>主要交付：</strong>跨字段验证、自定义验证器、异步验证、国际化错误信息</p>
            <p><strong>验收标准：</strong>支持复杂业务验证规则，提供完整的验证体系</p>
        </div>
        
        <div class="sprint-box">
            <h3 style="margin-top: 0; color: white;">Sprint 7 (2周) - 多数据库支持基础</h3>
            <p><strong>Sprint 目标：</strong>实现PostgreSQL和MySQL支持</p>
            <p><strong>故事点：</strong>21点 (US-011: 8点 + US-012: 8点 + US-013: 5点)</p>
            <p><strong>主要交付：</strong>PostgreSQL适配器、MySQL适配器、数据库特性抽象</p>
            <p><strong>验收标准：</strong>支持主流关系型数据库，提供统一的数据访问接口</p>
        </div>
        
        <div class="sprint-box">
            <h3 style="margin-top: 0; color: white;">Sprint 8 (2周) - 多数据库高级特性</h3>
            <p><strong>Sprint 目标：</strong>实现数据库特定优化和NoSQL支持</p>
            <p><strong>故事点：</strong>26点 (US-014: 13点 + US-018: 8点 + US-019: 5点)</p>
            <p><strong>主要交付：</strong>数据库特定优化、MongoDB支持、连接池管理</p>
            <p><strong>验收标准：</strong>支持NoSQL数据库，提供高性能数据访问</p>
        </div>

        <h3 style="color: #2c3e50; margin-top: 30px;">MVP 3.0 - 高级查询与模板系统 (Sprint 9-11)</h3>
        
        <div class="sprint-box">
            <h3 style="margin-top: 0; color: white;">Sprint 9 (2周) - 字段模板系统</h3>
            <p><strong>Sprint 目标：</strong>实现可重用的字段模板和参数化模板</p>
            <p><strong>故事点：</strong>21点 (US-060: 8点 + US-061: 13点)</p>
            <p><strong>主要交付：</strong>字段模板定义、参数化模板、模板组合</p>
            <p><strong>验收标准：</strong>开发者可以定义和使用可重用的字段模板，减少重复定义</p>
        </div>
        
        <div class="sprint-box">
            <h3 style="margin-top: 0; color: white;">Sprint 10 (2周) - 实体模板与代码生成</h3>
            <p><strong>Sprint 目标：</strong>实现实体模板和自动代码生成</p>
            <p><strong>故事点：</strong>34点 (US-062: 13点 + US-063: 8点 + US-064: 13点)</p>
            <p><strong>主要交付：</strong>模板继承组合、实体模板、验证规则生成、业务逻辑生成</p>
            <p><strong>验收标准：</strong>支持复杂模板继承，自动生成相关验证和业务逻辑</p>
        </div>
        
        <div class="sprint-box">
            <h3 style="margin-top: 0; color: white;">Sprint 11 (2周) - 模板库与共享机制</h3>
            <p><strong>Sprint 目标：</strong>实现模板导出共享和RSQL查询支持</p>
            <p><strong>故事点：</strong>29点 (US-065: 8点 + US-021: 13点 + US-022: 8点)</p>
            <p><strong>主要交付：</strong>模板库导出、共享机制、RSQL解析器、基础查询操作</p>
            <p><strong>验收标准：</strong>模板可以在团队间共享重用，支持RSQL查询语法</p>
        </div>

        <h3 style="color: #2c3e50; margin-top: 30px;">MVP 4.0 - 插件系统与企业级功能 (Sprint 12-14)</h3>
        
        <div class="sprint-box">
            <h3 style="margin-top: 0; color: white;">Sprint 12 (2周) - 插件架构基础</h3>
            <p><strong>Sprint 目标：</strong>实现标准插件接口和生命周期管理</p>
            <p><strong>故事点：</strong>26点 (US-066: 13点 + US-067: 13点)</p>
            <p><strong>主要交付：</strong>插件接口规范、生命周期钩子、自定义处理逻辑</p>
            <p><strong>验收标准：</strong>插件可以在DSL解析的不同阶段介入，扩展系统功能</p>
        </div>
        
        <div class="sprint-box">
            <h3 style="margin-top: 0; color: white;">Sprint 13 (2周) - 热插拔与高级查询</h3>
            <p><strong>Sprint 目标：</strong>实现插件热插拔和复杂查询能力</p>
            <p><strong>故事点：</strong>26点 (US-068: 13点 + US-023: 13点)</p>
            <p><strong>主要交付：</strong>插件热插拔机制、关联路径查询、动态加载管理</p>
            <p><strong>验收标准：</strong>插件可以运行时动态加载卸载，支持复杂关联查询</p>
        </div>
        
        <div class="sprint-box">
            <h3 style="margin-top: 0; color: white;">Sprint 14 (2周) - 模型热更新与原子性</h3>
            <p><strong>Sprint 目标：</strong>实现模型热更新和原子性保证</p>
            <p><strong>故事点：</strong>21点 (US-024: 13点 + US-025: 8点)</p>
            <p><strong>主要交付：</strong>热更新机制、安全Schema变更、原子性更新</p>
            <p><strong>验收标准：</strong>模型可以不重启更新，保证更新的原子性和一致性</p>
        </div>

        <h3 style="color: #2c3e50; margin-top: 30px;">MVP 5.0 - 插件生态与企业级功能 (Sprint 15-16)</h3>
        
        <div class="sprint-box">
            <h3 style="margin-top: 0; color: white;">Sprint 15 (2周) - 插件生态系统</h3>
            <p><strong>Sprint 目标：</strong>建立插件市场和社区生态</p>
            <p><strong>故事点：</strong>26点 (US-069: 13点 + US-070: 8点 + US-071: 5点)</p>
            <p><strong>主要交付：</strong>插件市场、版本管理、社区支持</p>
            <p><strong>验收标准：</strong>插件可以发布到市场，支持版本管理和社区协作</p>
        </div>
        
        <div class="sprint-box">
            <h3 style="margin-top: 0; color: white;">Sprint 16 (2周) - 企业级安全与监控</h3>
            <p><strong>Sprint 目标：</strong>实现企业级安全和监控功能</p>
            <p><strong>故事点：</strong>29点 (US-042: 13点 + US-053: 8点 + US-054: 5点 + US-055: 8点)</p>
            <p><strong>主要交付：</strong>权限控制、审计日志、安全监控、性能监控</p>
            <p><strong>验收标准：</strong>满足企业级安全要求，支持完整的审计和监控</p>
        </div>

        <h2>📈 发布计划</h2>
        
        <table>
            <thead>
                <tr>
                    <th style="width: 15%;">版本</th>
                    <th style="width: 15%;">时间周期</th>
                    <th style="width: 10%;">Sprint范围</th>
                    <th style="width: 10%;">故事点</th>
                    <th style="width: 25%;">主要功能</th>
                    <th style="width: 25%;">发布标准</th>
                </tr>
            </thead>
            <tbody>
                <tr class="priority-critical" style="background-color: #d4edda; color: #155724;">
                    <td><strong>✅ MVP 1.0</strong><br>完整后端基础<br><span style="font-size: 10px; color: #28a745;">已完成</span></td>
                    <td>8周<br>(Sprint 1-4)<br><span style="font-size: 10px; color: #28a745;">✅ 完成</span></td>
                    <td>Sprint 1-4<br><span style="font-size: 10px; color: #28a745;">全部完成</span></td>
                    <td class="story-points">84<br><span style="font-size: 10px; color: #28a745;">✅ 完成</span></td>
                    <td>• ✅ DSL解析与验证<br>• ✅ TypeORM自动生成<br>• ✅ SQLite支持<br>• ✅ RESTful API生成</td>
                    <td>• ✅ 端到端Demo运行<br>• ✅ 52个Cucumber场景通过<br>• ✅ 17个E2E测试通过<br>• ✅ 144个总体测试通过</td>
                </tr>
                <tr class="priority-high">
                    <td><strong>MVP 2.0</strong><br>增强功能层</td>
                    <td>8周<br>(Sprint 5-8)</td>
                    <td>Sprint 5-8</td>
                    <td class="story-points">78</td>
                    <td>• 完整数据类型系统<br>• 增强验证规则<br>• 模板系统与代码重用<br>• 插件系统与扩展性</td>
                    <td>• 数据类型完整性测试<br>• 验证规则Demo<br>• 模板重用验证<br>• 插件扩展文档</td>
                </tr>
                <tr class="priority-medium">
                    <td><strong>MVP 3.0</strong><br>模板系统</td>
                    <td>6周<br>(Sprint 9-11)</td>
                    <td>Sprint 9-11</td>
                    <td class="story-points">68</td>
                    <td>• 字段模板系统<br>• 实体模板与代码生成<br>• 模板库与共享机制<br>• 模板版本管理</td>
                    <td>• 模板重用验证<br>• 代码生成质量<br>• 模板库集成测试<br>• 版本兼容性验证</td>
                </tr>
                <tr class="priority-medium">
                    <td><strong>MVP 4.0</strong><br>插件系统与企业级功能</td>
                    <td>6周<br>(Sprint 12-14)</td>
                    <td>Sprint 12-14</td>
                    <td class="story-points">73</td>
                    <td>• 插件架构基础<br>• 插件热插拔<br>• 高级查询支持<br>• 模型热更新</td>
                    <td>• 插件扩展验证<br>• 热插拔稳定性<br>• 查询性能测试<br>• 热更新安全性</td>
                </tr>
                <tr class="priority-low">
                    <td><strong>MVP 5.0</strong><br>插件生态与企业级功能</td>
                    <td>4周<br>(Sprint 15-16)</td>
                    <td>Sprint 15-16</td>
                    <td class="story-points">55</td>
                    <td>• 插件市场<br>• 插件生态系统<br>• 权限控制<br>• 审计日志与监控</td>
                    <td>• 插件市场运行<br>• 生态系统活跃度<br>• 安全审计通过<br>• 企业部署指南</td>
                </tr>
            </tbody>
        </table>

        <h2>⚠️ 风险管理</h2>
        
        <div class="definition-of-done">
            <h4 style="margin-top: 0;">🚨 主要风险与缓解策略</h4>
            <ul style="margin: 5px 0; padding-left: 20px;">
                <li><strong>技术风险：</strong>TypeORM集成复杂度 → 提前技术验证，准备备选方案</li>
                <li><strong>范围风险：</strong>功能蔓延 → 严格按照MVP范围，推迟非核心功能</li>
                <li><strong>质量风险：</strong>测试覆盖不足 → TDD开发，持续集成</li>
                <li><strong>时间风险：</strong>估算偏差 → 每Sprint回顾调整，缓冲时间</li>
                <li><strong>团队风险：</strong>关键人员依赖 → 知识分享，结对编程</li>
                <li><strong>集成风险：</strong>模块间接口不匹配 → 接口先行设计，契约测试</li>
                <li><strong>性能风险：</strong>热更新影响系统稳定性 → 灰度发布，性能监控</li>
                <li><strong>安全风险：</strong>权限控制漏洞 → 安全审计，渗透测试</li>
            </ul>
        </div>

        <div class="stats">
            <div class="stat-card" style="border-left-color: #28a745;">
                <div class="stat-number">327</div>
                <div class="stat-label">总故事点数</div>
            </div>
            <div class="stat-card" style="border-left-color: #ffc107;">
                <div class="stat-number">25</div>
                <div class="stat-label">预估团队速度</div>
            </div>
            <div class="stat-card" style="border-left-color: #dc3545;">
                <div class="stat-number">15</div>
                <div class="stat-label">总Sprint数</div>
            </div>
            <div class="stat-card" style="border-left-color: #6f42c1;">
                <div class="stat-number">30</div>
                <div class="stat-label">预计完成周数</div>
            </div>
        </div>

        <h2>📋 Sprint回顾与调整机制</h2>
        
        <div class="definition-of-done">
            <h4 style="margin-top: 0;">🔄 敏捷实践</h4>
            <ul style="margin: 5px 0; padding-left: 20px;">
                <li><strong>每日站会：</strong>同步进度，识别阻碍，调整计划</li>
                <li><strong>Sprint评审：</strong>演示完成功能，收集反馈</li>
                <li><strong>Sprint回顾：</strong>总结经验教训，改进流程</li>
                <li><strong>产品待办列表梳理：</strong>调整优先级，细化需求</li>
                <li><strong>速度跟踪：</strong>记录实际完成故事点，调整预估</li>
                <li><strong>质量门禁：</strong>代码审查，自动化测试，性能基准</li>
            </ul>
        </div>

        <script>
        // 燃尽图数据和配置
        const sprintData = {
            1: { total: 21, days: 10, actual: [21, 19, 17, 15, 12, 10, 8, 6, 4, 2, 0], current: [21, 20, 18, 16, 14, 12, 10] },
            2: { total: 21, days: 10, actual: [21, 19, 17, 15, 12, 10, 8, 6, 4, 2, 0], current: [21, 19, 17, 15, 13] },
            3: { total: 21, days: 10, actual: [21, 19, 17, 15, 12, 10, 8, 6, 4, 2, 0], current: [21] },
            4: { total: 21, days: 10, actual: [21, 19, 17, 15, 12, 10, 8, 6, 4, 2, 0], current: [21] },
            5: { total: 23, days: 10, actual: [23, 21, 19, 17, 14, 12, 9, 7, 4, 2, 0], current: [23] },
            6: { total: 26, days: 10, actual: [26, 24, 22, 19, 17, 14, 11, 8, 5, 2, 0], current: [26] },
            7: { total: 19, days: 10, actual: [19, 17, 15, 13, 11, 9, 7, 5, 3, 1, 0], current: [19] },
            8: { total: 21, days: 10, actual: [21, 19, 17, 15, 12, 10, 8, 6, 4, 2, 0], current: [21] },
            9: { total: 21, days: 10, actual: [21, 19, 17, 15, 12, 10, 8, 6, 4, 2, 0], current: [21] },
            10: { total: 21, days: 10, actual: [21, 19, 17, 15, 12, 10, 8, 6, 4, 2, 0], current: [21] },
            11: { total: 18, days: 10, actual: [18, 16, 14, 12, 10, 8, 6, 4, 2, 1, 0], current: [18] },
            12: { total: 21, days: 10, actual: [21, 19, 17, 15, 12, 10, 8, 6, 4, 2, 0], current: [21] }
        };

        function drawBurndownChart(sprintNum) {
            const canvas = document.getElementById('burndownChart');
            if (!canvas) return;
            
            const ctx = canvas.getContext('2d');
            const data = sprintData[sprintNum];
            
            // 清空画布
            ctx.clearRect(0, 0, canvas.width, canvas.height);
            
            // 设置画布尺寸和边距
            const margin = { top: 20, right: 40, bottom: 40, left: 60 };
            const chartWidth = canvas.width - margin.left - margin.right;
            const chartHeight = canvas.height - margin.top - margin.bottom;
            
            // 计算比例
            const xScale = chartWidth / data.days;
            const yScale = chartHeight / data.total;
            
            // 绘制网格线
            ctx.strokeStyle = '#e0e0e0';
            ctx.lineWidth = 1;
            
            // 垂直网格线
            for (let i = 0; i <= data.days; i++) {
                const x = margin.left + i * xScale;
                ctx.beginPath();
                ctx.moveTo(x, margin.top);
                ctx.lineTo(x, margin.top + chartHeight);
                ctx.stroke();
            }
            
            // 水平网格线
            for (let i = 0; i <= data.total; i += 5) {
                const y = margin.top + chartHeight - i * yScale;
                ctx.beginPath();
                ctx.moveTo(margin.left, y);
                ctx.lineTo(margin.left + chartWidth, y);
                ctx.stroke();
            }
            
            // 绘制理想燃尽线
            ctx.strokeStyle = '#28a745';
            ctx.lineWidth = 2;
            ctx.setLineDash([5, 5]);
            ctx.beginPath();
            ctx.moveTo(margin.left, margin.top);
            ctx.lineTo(margin.left + chartWidth, margin.top + chartHeight);
            ctx.stroke();
            ctx.setLineDash([]);
            
            // 绘制实际进度线
            if (data.current.length > 1) {
                ctx.strokeStyle = '#007bff';
                ctx.lineWidth = 3;
                ctx.beginPath();
                ctx.moveTo(margin.left, margin.top + chartHeight - data.current[0] * yScale);
                
                for (let i = 1; i < data.current.length; i++) {
                    const x = margin.left + i * xScale;
                    const y = margin.top + chartHeight - data.current[i] * yScale;
                    ctx.lineTo(x, y);
                }
                ctx.stroke();
                
                // 绘制数据点
                ctx.fillStyle = '#007bff';
                for (let i = 0; i < data.current.length; i++) {
                    const x = margin.left + i * xScale;
                    const y = margin.top + chartHeight - data.current[i] * yScale;
                    ctx.beginPath();
                    ctx.arc(x, y, 4, 0, 2 * Math.PI);
                    ctx.fill();
                }
            }
            
            // 绘制坐标轴
            ctx.strokeStyle = '#333';
            ctx.lineWidth = 2;
            
            // X轴
            ctx.beginPath();
            ctx.moveTo(margin.left, margin.top + chartHeight);
            ctx.lineTo(margin.left + chartWidth, margin.top + chartHeight);
            ctx.stroke();
            
            // Y轴
            ctx.beginPath();
            ctx.moveTo(margin.left, margin.top);
            ctx.lineTo(margin.left, margin.top + chartHeight);
            ctx.stroke();
            
            // 绘制标签
            ctx.fillStyle = '#333';
            ctx.font = '12px Arial';
            ctx.textAlign = 'center';
            
            // X轴标签
            for (let i = 0; i <= data.days; i++) {
                const x = margin.left + i * xScale;
                ctx.fillText(i.toString(), x, margin.top + chartHeight + 20);
            }
            
            // Y轴标签
            ctx.textAlign = 'right';
            for (let i = 0; i <= data.total; i += 5) {
                const y = margin.top + chartHeight - i * yScale + 4;
                ctx.fillText(i.toString(), margin.left - 10, y);
            }
            
            // 图例
            ctx.textAlign = 'left';
            ctx.fillStyle = '#28a745';
            ctx.fillRect(margin.left + chartWidth - 150, margin.top + 10, 15, 2);
            ctx.fillStyle = '#333';
            ctx.fillText('理想燃尽线', margin.left + chartWidth - 130, margin.top + 15);
            
            ctx.fillStyle = '#007bff';
            ctx.fillRect(margin.left + chartWidth - 150, margin.top + 30, 15, 3);
            ctx.fillStyle = '#333';
            ctx.fillText('实际进度线', margin.left + chartWidth - 130, margin.top + 35);
        }
        
        // 页面加载完成后初始化图表
        document.addEventListener('DOMContentLoaded', function() {
            drawBurndownChart(1);
            
            // Sprint选择器事件
            const selector = document.getElementById('sprintSelector');
            if (selector) {
                selector.addEventListener('change', function(e) {
                    const sprintNum = parseInt(e.target.value);
                    drawBurndownChart(sprintNum);
                    
                    // 更新统计数据
                    const data = sprintData[sprintNum];
                    const currentDay = data.current.length - 1;
                    const remaining = data.current[currentDay] || 0;
                    const daysLeft = Math.max(0, data.days - currentDay);
                    const progress = Math.round(((data.total - remaining) / data.total) * 100);
                    const idealRemaining = Math.max(0, data.total - (currentDay * data.total / data.days));
                    const deviation = Math.round(remaining - idealRemaining);
                    
                    // 更新显示的统计数据
                    const statDivs = document.querySelectorAll('.stat-card div, [style*="font-size: 24px"]');
                    if (statDivs.length >= 4) {
                        // 更新剩余故事点、剩余天数、完成进度、进度偏差
                        const statsContainer = document.querySelector('[style*="display: flex; justify-content: space-around"]');
                        if (statsContainer) {
                            const statValues = statsContainer.querySelectorAll('[style*="font-size: 24px"]');
                            if (statValues.length >= 4) {
                                statValues[0].textContent = remaining;
                                statValues[1].textContent = daysLeft;
                                statValues[2].textContent = progress + '%';
                                statValues[3].textContent = (deviation >= 0 ? '+' : '') + deviation;
                                statValues[3].style.color = deviation > 0 ? '#dc3545' : deviation < 0 ? '#28a745' : '#ffc107';
                            }
                        }
                    }
                });
            }
        });
        </script>

        <p style="text-align: center; color: #7f8c8d; margin-top: 40px;">
            <em>本计划基于Scrum框架制定，将根据实际开发进度和团队反馈持续调整优化。预计6个月完成全部4个MVP版本。</em>
        </p>
    </div>
</body>
</html>